from math import floor
from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 主动技能(主动技能):

    def 武器CD系数(self, 武器类型, 输出类型):
        return 1.0


class 技能0(被动技能):  # 基础精通
    名称 = '基础精通'
    倍率 = 1.0

    所在等级 = 1
    等级上限 = 200
    学习间隔 = 1
    等级精通 = 110

    关联技能 = ['基本攻击', '空斩打']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class 技能1(主动技能):
    名称 = '基本攻击'
    所在等级 = 1
    等级上限 = 1
    基础等级 = 1
    CD = 1  # 也没有CD
    # 平x第一击
    data1 = [0, 94.27]
    hit1 = 1

    data2 = [0, 112.85]
    hit2 = 1

    data3 = [0, 138.57]
    hit3 = 1

    data4 = [0, 71.465]
    hit4 = 1

    TP成长 = 0.10
    TP上限 = 5

    def 等效百分比(self, **argv):
        char = argv.get('char', {})
        潜龙 = char.get_skill_by_name("潜龙")
        self.power3 = 潜龙.获取倍率("基本攻击")/100 + 1
        self.power4 = 潜龙.获取倍率("基本攻击冲击波")/100
        return super().等效百分比(**argv)


class 技能2(主动技能):
    名称 = "空斩打"
    所在等级 = 1
    等级上限 = 20
    学习间隔 = 3
    等级精通 = 10
    CD = 2
    MP = [0, 0]
    无色消耗 = 0
    data0 = [0, 103, 114, 125, 137, 148, 159, 171, 182, 194, 205, 217, 228, 239, 251, 261, 273, 285, 296, 308, 319]
    hit0 = 1
    data1 = [0, 103, 114, 125, 137, 148, 159, 171, 182, 194, 205, 217, 228, 239, 251, 261, 273, 285, 296, 308, 319]
    hit1 = 1
    data2 = [0, 103, 114, 125, 137, 148, 159, 171, 182, 194, 205, 217, 228, 239, 251, 261, 273, 285, 296, 308, 319]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 7

    形态 = ['普通', '反身']

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        潜龙 = char.get_skill_by_name("潜龙")
        self.power0 = 1 + (潜龙.获取倍率("空斩打") / 100)
        self.power1 = 潜龙.获取倍率("空斩打剑气") / 100
        self.power2 = 潜龙.获取倍率("空斩打冲击波") / 100
        if 形态 == "普通":
            self.hit2 = 0
            pass
        if 形态 == "反身":
            self.hit2 = 1
        pass


class 技能3(主动技能):
    名称 = "落凤锤"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [28, 308]
    无色消耗 = 0
    data0 = [0, 654, 721, 789, 853, 920, 986, 1054, 1121, 1188, 1252, 1317, 1387, 1452, 1517, 1585, 1651, 1718, 1787, 1850, 1915, 1981, 2050, 2117, 2184, 2250, 2313, 2385, 2448, 2516, 2582, 2648, 2716, 2783, 2847, 2917, 2987, 3050, 3114, 3180, 3249, 3315, 3379, 3448, 3513, 3583, 3651, 3713, 3780, 3847, 3911, 3980, 4046, 4115, 4179, 4247, 4314, 4379, 4443, 4512, 4578, 4646, 4712, 4777, 4843, 4912, 4975, 5043, 5109, 5178, 5243]
    hit0 = 1
    data1 = [0, 2620, 2887, 3153, 3418, 3686, 3951, 4217, 4485, 4750, 5015, 5281, 5547, 5813, 6079, 6347, 6612, 6879, 7143, 7409, 7677, 7941, 8210, 8473, 8741, 9004, 9269, 9538, 9802, 10070, 10335, 10602, 10867, 11135, 11401, 11666, 11933, 12199, 12465, 12731, 12994, 13264, 13527, 13796, 14060, 14327, 14593, 14858, 15127, 15392, 15658, 15923, 16187, 16456, 16719, 16989, 17252, 17519, 17786, 18051, 18318, 18584, 18852, 19118, 19382, 19650, 19913, 20182, 20445, 20715, 20979]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7

    倍率 = 1.2  # 转职


class 技能4(主动技能):
    名称 = '疾风打'
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 4.5
    MP = [32, 343]
    无色消耗 = 0
    data0 = [0, 455, 505, 547, 595, 641, 688, 737, 782, 827, 875, 923, 967, 1012, 1060, 1103, 1152, 1198, 1247, 1288, 1339, 1387, 1431, 1480, 1523, 1569, 1617, 1665, 1708, 1756, 1804, 1846, 1895, 1943, 1987, 2037, 2080, 2128, 2173, 2221, 2267, 2313, 2358, 2409, 2454, 2498, 2546, 2593, 2636, 2685, 2731, 2776, 2824, 2873, 2916, 2965, 3013, 3055, 3103, 3150, 3195, 3241, 3288, 3332, 3382, 3426, 3472, 3520, 3566, 3614, 3660]
    hit0 = 1
    data1 = [0, 2593, 2855, 3121, 3382, 3644, 3911, 4172, 4435, 4695, 4958, 5225, 5486, 5750, 6009, 6273, 6537, 6800, 7064, 7326, 7593, 7856, 8116, 8379, 8645, 8906, 9169, 9431, 9696, 9961, 10224, 10483, 10746, 11011, 11275, 11538, 11798, 12062, 12325, 12590, 12853, 13113, 13379, 13643, 13906, 14169, 14428, 14692, 14956, 15219, 15483, 15748, 16009, 16270, 16535, 16799, 17061, 17325, 17589, 17851, 18116, 18378, 18640, 18902, 19165, 19429, 19692, 19957, 20216, 20483, 20743]
    hit1 = 1
    CD = 4.5
    TP成长 = 0.10
    TP上限 = 7


class 技能5(主动技能):
    名称 = "破魔符"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 2
    MP = [10, 448]
    无色消耗 = 0
    data0 = [0, 312, 344, 375, 407, 438, 467, 501, 533, 563, 599, 628, 659, 692, 723, 755, 786, 817, 848, 878, 914, 944, 975, 1007, 1038, 1070, 1101, 1134, 1164, 1198, 1230, 1259, 1294, 1323, 1354, 1388, 1420, 1451, 1483, 1514, 1547, 1577, 1609, 1639, 1674, 1704, 1736, 1767, 1799, 1830, 1861, 1894, 1924, 1955, 1990, 2019, 2050, 2084, 2114, 2146, 2177, 2211, 2244, 2275, 2307, 2336, 2369, 2400, 2430, 2465, 2495]
    hit0 = 6
    TP成长 = 0.1
    TP上限 = 7


class 技能6(被动技能):
    名称 = '潜龙'
    所在等级 = 15
    等级上限 = 11
    基础等级 = 1
    关联技能 = ['无双击']
    关联技能1 = ['断空捶击']
    基本攻击 = [0, 60, 64, 68, 72, 76, 80, 84, 88, 92, 96, 100]
    基本攻击冲击波 = [0, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, 300]
    巨旋风近身 = [0, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45]
    巨旋风远程 = [0, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80]
    巨旋风时间 = [0, 1.3, 1.4, 1.4, 1.4, 1.5, 1.6, 1.6, 1.6, 1.7, 1.8, 1.8]
    空斩打 = [0, 40, 42, 45, 47, 50, 52, 55, 57, 60, 62, 65]
    空斩打剑气 = [0, 100, 104, 110, 114, 120, 124, 130, 134, 140, 144, 150]
    空斩打冲击波 = [0, 100, 104, 110, 114, 120, 124, 130, 134, 140, 144, 150]
    无双击 = [0, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60]
    断空捶击 = [0, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60]

    def 获取倍率(self, name):
        倍率 = getattr(self, name, [0]*15)
        return 倍率[self.等级]

    def 加成倍率(self, 武器类型):
        return 1 + self.获取倍率("无双击") / 100

    def 加成倍率1(self, 武器类型):
        return 1 + self.获取倍率("断空捶击") / 100


class 技能7(主动技能):
    名称 = "断空捶击"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 4.5
    MP = [32, 343]
    无色消耗 = 0
    data0 = [0, 137, 152, 164, 181, 193, 209, 222, 237, 250, 267, 278, 292, 308, 320, 336, 351, 367, 376, 393, 405, 421, 434, 449, 460, 478, 493, 507, 520, 532, 548, 560, 575, 587, 604, 617, 633, 645, 660, 674, 690, 700, 714, 730, 747, 760, 774, 786, 801, 816, 828, 844, 854, 875, 884, 901, 916, 929, 943, 954, 970, 983, 1001, 1015, 1028, 1040, 1056, 1068, 1083, 1095, 1112]
    hit0 = 1
    data1 = [0, 1251, 1377, 1508, 1633, 1759, 1885, 2016, 2142, 2269, 2393, 2520, 2650, 2777, 2905, 3028, 3158, 3285, 3413, 3539, 3666, 3793, 3921, 4047, 4175, 4301, 4426, 4554, 4680, 4807, 4933, 5062, 5188, 5316, 5441, 5570, 5696, 5824, 5950, 6078, 6204, 6332, 6458, 6586, 6712, 6840, 6967, 7095, 7224, 7349, 7476, 7603, 7728, 7859, 7984, 8111, 8237, 8367, 8494, 8619, 8745, 8873, 9002, 9128, 9253, 9381, 9511, 9636, 9766, 9890, 10017]
    hit1 = 1
    data2 = [0, 1389, 1529, 1672, 1812, 1958, 2096, 2236, 2381, 2519, 2660, 2802, 2942, 3083, 3225, 3368, 3508, 3650, 3791, 3931, 4075, 4212, 4353, 4498, 4635, 4777, 4922, 5062, 5200, 5344, 5484, 5624, 5767, 5907, 6047, 6190, 6332, 6473, 6615, 6755, 6896, 7038, 7178, 7319, 7461, 7600, 7744, 7887, 8026, 8166, 8310, 8448, 8589, 8733, 8872, 9012, 9158, 9296, 9436, 9580, 9719, 9859, 10003, 10142, 10282, 10425, 10564, 10708, 10850, 10991, 11130]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能8(主动技能):
    名称 = "升天阵"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [28, 308]
    无色消耗 = 0
    data0 = [0, 3013, 3317, 3621, 3929, 4232, 4539, 4844, 5152, 5458, 5761, 6065, 6373, 6680, 6984, 7287, 7598, 7900, 8203, 8512, 8820, 9124, 9429, 9736, 10041, 10348, 10652, 10961, 11264, 11567, 11871, 12180, 12484, 12791, 13095, 13403, 13707, 14012, 14318, 14628, 14932, 15236, 15545, 15847, 16152, 16458, 16766, 17071, 17375, 17678, 17987, 18293, 18599, 18903, 19211, 19516, 19818, 20125, 20433, 20737, 21042, 21347, 21656, 21957, 22266, 22571, 22878, 23183, 23490, 23797, 24098]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7
    倍率 = 1.2  # 转职


class 技能9(被动技能):
    名称 = '巨兵精通'
    所在等级 = 20
    等级上限 = 40
    基础等级 = 20
    冷却关联技能 = ['所有']
    非冷却关联技能 = ['苍龙逐日', '真龙焚天', '雷鸣怒海·火啸山崩']

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.1 + 0.01 * self.等级, 5)

    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.1 + 0.01 * self.等级, 5)

    def CD缩减倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 0.9


class 技能10(主动技能):
    名称 = "黑暗切割"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [40, 462]
    无色消耗 = 0
    data0 = [0, 3166, 3492, 3813, 4134, 4452, 4774, 5099, 5421, 5741, 6063, 6386, 6707, 7026, 7349, 7671, 7992, 8315, 8636, 8956, 9278, 9601, 9921, 10242, 10566, 10888, 11207, 11529, 11850, 12172, 12492, 12816, 13138, 13460, 13779, 14103, 14424, 14747, 15066, 15389, 15709, 16032, 16352, 16672, 16996, 17321, 17641, 17961, 18283, 18604, 18926, 19248, 19569, 19889, 20213, 20534, 20856, 21179, 21499, 21820, 22144, 22464, 22784, 23105, 23427, 23750, 24069, 24392, 24714, 25037, 25356]
    hit0 = 1
    data1 = [0, 1359, 1495, 1630, 1770, 1908, 2046, 2184, 2321, 2456, 2597, 2735, 2872, 3010, 3148, 3285, 3426, 3561, 3698, 3838, 3974, 4114, 4252, 4390, 4528, 4665, 4802, 4940, 5077, 5216, 5354, 5492, 5629, 5769, 5904, 6041, 6182, 6319, 6457, 6594, 6730, 6870, 7009, 7146, 7284, 7420, 7559, 7698, 7836, 7973, 8110, 8248, 8387, 8524, 8662, 8799, 8938, 9077, 9214, 9352, 9487, 9627, 9766, 9903, 10040, 10179, 10315, 10452, 10589, 10730, 10866]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能11(主动技能):
    名称 = "朱雀符"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6.5
    MP = [40, 462]
    无色消耗 = 0
    data0 = [0, 524, 578, 629, 683, 737, 793, 844, 897, 952, 1005, 1057, 1109, 1165, 1218, 1272, 1324, 1378, 1432, 1484, 1539, 1592, 1645, 1697, 1749, 1805, 1856, 1912, 1964, 2019, 2071, 2125, 2176, 2230, 2283, 2340, 2393, 2444, 2496, 2549, 2601, 2654, 2708, 2764, 2816, 2872, 2923, 2978, 3030, 3085, 3138, 3191, 3243, 3297, 3350, 3403, 3455, 3512, 3564, 3618, 3670, 3724, 3777, 3829, 3883, 3937, 3990, 4044, 4097, 4151, 4204]
    hit0 = 10
    data1 = [0, 5243, 5779, 6299, 6839, 7376, 7913, 8431, 8970, 9508, 10047, 10584, 11104, 11641, 12179, 12718, 13235, 13773, 14312, 14849, 15368, 15908, 16445, 16983, 17500, 18039, 18578, 19116, 19635, 20173, 20711, 21249, 21769, 22306, 22844, 23402, 23921, 24419, 24957, 25474, 26014, 26551, 27089, 27649, 28165, 28705, 29243, 29780, 30299, 30839, 31375, 31913, 32432, 32969, 33507, 34045, 34566, 35102, 35640, 36179, 36697, 37235, 37769, 38301, 38835, 39368, 39902, 40434, 40969, 41502, 42035]
    hit1 = 0
    TP成长 = 0.1
    TP上限 = 7

    形态 = ["烈焰", "圣光"]

    CP武器 = False

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "烈焰":
            self.hit0 = 10
            self.hit1 = 0
        if 形态 == "圣光":
            self.hit0 = 0
            self.hit1 = 1


class 技能12(主动技能):
    名称 = "星落打"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 12
    MP = [60, 756]
    无色消耗 = 0
    data0 = [0, 8531, 9397, 10263, 11128, 11991, 12861, 13726, 14592, 15457, 16323, 17188, 18055, 18919, 19784, 20650, 21517, 22382, 23247, 24113, 24981, 25843, 26710, 27576, 28440, 29306, 30172, 31040, 31904, 32767, 33635, 34500, 35366, 36233, 37098, 37963, 38826, 39693, 40558, 41427, 42294, 43158, 44023, 44890, 45753, 46620, 47485, 48352, 49216, 50081, 50949, 51813, 52678, 53545, 54411, 55277, 56141, 57009, 57874, 58741, 59603, 60470, 61336, 62200, 63067, 63932, 64799, 65667, 66528, 67396, 68261]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能13(主动技能):
    名称 = "巨旋风"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [65, 686]
    无色消耗 = 0
    # 近身数据，习得三觉被动后该部分被删除
    # data0 = [0, 493, 542, 593, 642, 693, 743, 793, 844, 895, 946, 996, 1046, 1096, 1146, 1192, 1245, 1294, 1346, 1394, 1446, 1494, 1546, 1595, 1646, 1695, 1746, 1796, 1846, 1896, 1946, 1996, 2047, 2096, 2147, 2196, 2247, 2296, 2342, 2393, 2442, 2493, 2543, 2593, 2643, 2693, 2743, 2794, 2843, 2894, 2943, 2999, 3049, 3099, 3149, 3199, 3250, 3298, 3349, 3398, 3449, 3497, 3548, 3597, 3648, 3697, 3748, 3797, 3848, 3898, 3948]
    # hit0 = 0
    # 远程数据，习得三觉被动后该部分hit数发生变化且实际伤害与面板数据不一致
    # 原数据*0.93539
    data0 = [0, 309, 339, 371, 401, 432, 464, 496, 525, 555, 587, 617, 652, 683, 714, 747, 776, 808, 838, 871, 900, 931, 963, 997, 1029, 1058, 1089, 1123, 1152, 1183, 1214, 1247, 1277, 1308, 1340, 1373, 1402, 1434, 1463, 1496, 1527, 1556, 1588, 1622, 1654, 1685, 1714, 1747, 1778, 1810, 1839, 1872, 1903, 1933, 1963, 1997, 2028, 2061, 2091, 2123, 2154, 2186, 2215, 2247, 2278, 2309, 2341, 2373, 2404, 2435, 2465]
    # 实际从20-23不等;算法应该是基础持续时间2s+潜龙增加的持续时间=最终持续时间，间隔也不是0.3s而是0.15s；最终段数为最终持续时间/0.15s；
    # 例如潜龙3级时为2+1.4=3.4s,段数为22.67;但由于巨旋风飞行过程中的时间也算在内，所以会出现20-23hit之间，最好是用round(计算结果-2)计入
    hit0 = 0
    # power0 = 0.93539  # 测试得出的实际倍率
    TP成长 = 0.10
    TP上限 = 7

    攻击间隔 = 0.15
    持续时间 = 2

    def 等效百分比(self, **argv):
        char = argv.get('char', {})
        潜龙 = char.get_skill_by_name("潜龙")
        self.持续时间 = 2 + 潜龙.获取倍率("巨旋风时间")
        self.power0 = 1 + 潜龙.获取倍率("巨旋风远程") / 100
        self.hit0 = floor(self.持续时间 / self.攻击间隔 - 2)
        return super().等效百分比(**argv)


class 技能14(主动技能):
    名称 = "式神：白虎"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 10
    MP = [65, 686]
    无色消耗 = 0
    hit0 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能15(被动技能):
    名称 = '驱魔之书'
    所在等级 = 30
    等级上限 = 40
    基础等级 = 10
    关联技能 = ['真龙焚天', '式神封灵阵', '逆龙七杀', '逆鳞震', '灭魂符', '苍龙逐日', '式神：殇', '疾空旋风破', '落雷符', '式神：白虎',
            '狂乱锤击', '疾风打', '朱雀符', '黑暗切割', '升天阵', '落凤锤', '破魔符', '式神灭却·合', '雷鸣怒海·火啸山崩']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 + 0.015 * self.等级, 5)


class 技能16(主动技能):
    名称 = "狂乱锤击"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 14
    MP = [180, 1512]
    无色消耗 = 1
    data0 = [0, 1803, 1985, 2169, 2353, 2533, 2716, 2899, 3082, 3266, 3447, 3628, 3814, 3995, 4179, 4360, 4545, 4729, 4910, 5093, 5276, 5458, 5642, 5825, 6006, 6189, 6372, 6556, 6738, 6921, 7104, 7289, 7473, 7654, 7837, 8020, 8202, 8386, 8569, 8750, 8933, 9116, 9299, 9482, 9664, 9845, 10030, 10212, 10395, 10580, 10764, 10945, 11131, 11312, 11493, 11677, 11861, 12043, 12226, 12406, 12588, 12774, 12956, 13139, 13322, 13505, 13689, 13870, 14054, 14236, 14418]
    hit0 = 4
    data1 = [0, 2124, 2339, 2555, 2770, 2983, 3201, 3416, 3632, 3847, 4062, 4278, 4493, 4706, 4924, 5139, 5356, 5571, 5784, 6002, 6216, 6432, 6650, 6861, 7079, 7295, 7510, 7728, 7941, 8157, 8371, 8587, 8805, 9019, 9235, 9452, 9664, 9882, 10096, 10311, 10529, 10743, 10956, 11173, 11388, 11606, 11820, 12036, 12251, 12465, 12683, 12898, 13111, 13329, 13543, 13759, 13976, 14188, 14406, 14621, 14836, 15052, 15266, 15484, 15700, 15914, 16129, 16343, 16561, 16776, 16992]
    hit1 = 0
    data2 = [0, 1558, 1716, 1871, 2033, 2190, 2345, 2505, 2664, 2819, 2978, 3138, 3294, 3455, 3610, 3768, 3928, 4084, 4244, 4402, 4559, 4716, 4875, 5033, 5192, 5351, 5507, 5666, 5823, 5982, 6140, 6297, 6456, 6615, 6770, 6928, 7089, 7245, 7402, 7563, 7719, 7880, 8035, 8193, 8354, 8509, 8669, 8827, 8984, 9141, 9301, 9458, 9615, 9776, 9933, 10089, 10248, 10407, 10562, 10723, 10881, 11038, 11198, 11353, 11513, 11672, 11827, 11989, 12146, 12301, 12463]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 5


class 技能17(主动技能):

    名称 = "落雷符"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [200, 1680]
    无色消耗 = 1
    data0 = [0, 1988, 2191, 2394, 2594, 2797, 2998, 3199, 3402, 3605, 3808, 4007, 4209, 4412, 4612, 4815, 5016, 5217, 5421, 5622, 5825, 6027, 6227, 6430, 6630, 6835, 7036, 7237, 7442, 7641, 7844, 8043, 8249, 8451, 8653, 8853, 9055, 9259, 9458, 9660, 9866, 10063, 10268, 10469, 10671, 10873, 11075, 11279, 11480, 11680, 11882, 12085, 12288, 12488, 12687, 12894, 13095, 13297, 13499, 13698, 13901, 14103, 14305, 14507, 14709, 14913, 15112, 15315, 15515, 15718, 15921]
    hit0 = 8
    感电data0 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
    感电hit0 = 8
    CD_list = [0,20, 19.9, 19.9, 19.8, 19.8, 19.7, 19.6, 19.6, 19.5, 19.4, 19.4, 19.3, 19.3, 19.2, 19.1, 19.1, 19, 18.9, 18.9, 18.8, 18.8, 18.7, 18.6, 18.6, 18.5, 18.4, 18.4, 18.3, 18.3, 18.2, 18.1, 18.1, 18, 17.9, 17.9, 17.8, 17.8, 17.7, 17.6, 17.6, 17.5, 17.5, 17.4, 17.3, 17.3, 17.2, 17.1, 17.1, 17, 17, 16.9, 16.8, 16.8, 16.7, 16.6, 16.6, 16.5, 16.5, 16.4, 16.3, 16.3, 16.2, 16.1, 16.1, 16, 16, 15.9, 15.8, 15.8, 15.7]
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 等效CD(self, **argv):
        self.CD = self.CD_list[self.等级]
        return super().等效CD(**argv)

    def 装备护石(self, char):
        self.hit0 = 4
        self.感电hit0 = 4
        self.power0 = 2.38
        self.CDR *= 0.85


class 技能18(主动技能):
    名称 = "疾空旋风破"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [200, 1680]
    无色消耗 = 1
    data0 = [0, 1561, 1720, 1877, 2036, 2196, 2352, 2511, 2671, 2827, 2987, 3147, 3302, 3462, 3621, 3781, 3941, 4096, 4255, 4413, 4573, 4731, 4887, 5044, 5205, 5362, 5522, 5679, 5839, 5997, 6158, 6315, 6470, 6633, 6790, 6950, 7108, 7264, 7425, 7581, 7740, 7900, 8056, 8215, 8375, 8530, 8689, 8851, 9006, 9164, 9328, 9484, 9643, 9799, 9958, 10118, 10277, 10434, 10592, 10749, 10910, 11069, 11227, 11383, 11544, 11702, 11863, 12019, 12174, 12338, 12494]
    hit0 = 9  # 基础7，潜龙固定+2
    data1 = [0, 3264, 3595, 3927, 4259, 4589, 4918, 5253, 5583, 5913, 6246, 6576, 6908, 7243, 7573, 7901, 8236, 8567, 8897, 9230, 9560, 9890, 10224, 10555, 10886, 11216, 11548, 11879, 12210, 12543, 12872, 13203, 13537, 13867, 14198, 14530, 14860, 15191, 15525, 15856, 16186, 16518, 16849, 17180, 17509, 17842, 18173, 18505, 18837, 19167, 19499, 19831, 20161, 20492, 20824, 21154, 21485, 21819, 22150, 22479, 22814, 23143, 23475, 23805, 24140, 24468, 24798, 25133, 25462, 25793, 26127]
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 += 1
        self.倍率 *= 1.17
        self.CDR *= 0.85


class 技能19(主动技能):
    名称 = "式神：殇"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [360, 3024]
    无色消耗 = 2
    data0 = [0, 1665, 1835, 2004, 2172, 2340, 2511, 2678, 2849, 3016, 3186, 3357, 3523, 3694, 3863, 4032, 4203, 4370, 4540, 4707, 4877, 5048, 5215, 5386, 5552, 5723, 5894, 6061, 6230, 6399, 6568, 6739, 6907, 7077, 7243, 7414, 7585, 7751, 7921, 8090, 8261, 8432, 8598, 8768, 8934, 9103, 9273, 9444, 9614, 9779, 9950, 10117, 10287, 10456, 10626, 10797, 10963, 11134, 11301, 11471, 11639, 11809, 11978, 12148, 12316, 12485, 12655, 12824, 12993, 13162, 13331]
    hit0 = 14
    data1 = [0, 7373, 8120, 8871, 9616, 10367, 11112, 11862, 12608, 13359, 14104, 14856, 15601, 16350, 17096, 17847, 18593, 19344, 20089, 20839, 21585, 22335, 23081, 23832, 24578, 25327, 26073, 26824, 27569, 28320, 29066, 29816, 30562, 31311, 32057, 32809, 33554, 34304, 35050, 35801, 36546, 37297, 38042, 38792, 39540, 40288, 41034, 41786, 42532, 43280, 44025, 44776, 45525, 46274, 47020, 47769, 48516, 49264, 50013, 50764, 51509, 52257, 53004, 53753, 54500, 55249, 55997, 56747, 57493, 58241, 58987]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 0
        self.power1 = 5.16
        self.CDR *= 0.95


class 技能20(主动技能):
    名称 = "无双击"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 40
    MP = [350, 2940]
    无色消耗 = 2
    data0 = [0, 1325, 1457, 1591, 1727, 1859, 1993, 2131, 2264, 2399, 2532, 2667, 2802, 2936, 3069, 3204, 3339, 3474, 3608, 3741, 3875, 4012, 4145, 4280, 4414, 4547, 4681, 4819, 4950, 5085, 5220, 5353, 5487, 5623, 5756, 5891, 6028, 6162, 6294, 6430, 6565, 6696, 6834, 6967, 7099, 7235, 7368, 7502, 7639, 7773, 7905, 8041, 8177, 8311, 8445, 8577, 8712, 8847, 8982, 9116, 9250, 9384, 9519, 9654, 9789, 9922, 10056, 10188, 10325, 10459, 10593]
    hit0 = 1
    data1 = [0, 17594, 19380, 21163, 22949, 24735, 26522, 28304, 30088, 31874, 33656, 35445, 37228, 39015, 40798, 42586, 44370, 46156, 47938, 49724, 51509, 53291, 55080, 56863, 58649, 60432, 62222, 64005, 65791, 67573, 69359, 71143, 72930, 74716, 76501, 78284, 80068, 81857, 83639, 85425, 87208, 88994, 90780, 92566, 94350, 96134, 97918, 99707, 101492, 103274, 105060, 106843, 108630, 110413, 112202, 113985, 115771, 117553, 119341, 121126, 122913, 124695, 126481, 128265, 130049, 131835, 133619, 135405, 137189, 138975, 140761]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    形态 = ["烈焰", "圣光"]

    CP武器 = False

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "烈焰":
            self.power0 = 1.2
            self.power1 = 1.2
        if 形态 == "圣光":
            if self.CP武器:
                self.power0 = 1.2
                self.power1 = 1.2
            else:
                self.power0 = 1.0
                self.power1 = 1.0


class 技能21(被动技能):
    名称 = '斗志散发'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.07 + 0.01 * self.等级, 5)


class 技能22(主动技能):
    名称 = "苍龙逐日"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [900, 7559]
    无色消耗 = 5
    data0 = [0, 75027, 92424, 109821, 127221, 144621, 162017, 179414, 196812, 214212, 231610, 249007, 266404, 283802, 301199, 318600, 335998, 353394, 370791, 388188, 405585, 422985, 440383, 457780, 475177, 492575, 509977, 527374, 544773, 562169, 579565, 596964, 614362, 631762, 649159, 666555, 683951, 701352, 718751, 736148, 753542, 770939, 788341, 805739, 823138, 840536, 857931, 875331, 892729, 910127, 927525]
    hit0 = 1

    def 等效百分比(self, **argv):
        return super().等效百分比(**argv) * (1.1 if self.等级 >= 9 else 1)


class 技能23(主动技能):
    名称 = "灭魂符"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 30
    MP = [200, 1680]
    无色消耗 = 1
    data0 = [0, 2805, 3092, 3376, 3659, 3943, 4229, 4514, 4798, 5084, 5369, 5655, 5939, 6223, 6506, 6795, 7078, 7363, 7646, 7936, 8219, 8500, 8787, 9070, 9355, 9640, 9925, 10208, 10494, 10779, 11064, 11348, 11632, 11919, 12205, 12488, 12772, 13056, 13344, 13629, 13913, 14197, 14482, 14766, 15051, 15336, 15621, 15906, 16190, 16474, 16759]
    hit0 = 10
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.35
        self.CDR *= 0.9


class 技能24(主动技能):
    名称 = "逆鳞震"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [800, 1680]
    无色消耗 = 2
    data0 = [0, 48248, 53143, 58045, 62930, 67829, 72724, 77625, 82524, 87411, 92316, 97208, 102104, 106992, 111894, 116787, 121687, 126573, 131475, 136374, 141263, 146163, 151055, 155956, 160843, 165744, 170640, 175537, 180439, 185324, 190228, 195123, 200019, 204909, 209807, 214699, 219592, 224492, 229394, 234290, 239177, 244077, 248972, 253869, 258758, 263662, 268550, 273453, 278339, 283241, 288139]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.28


class 技能25(主动技能):
    名称 = "逆龙七杀"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [800, 6000]
    无色消耗 = 5

    data0 = [0, 2139, 2359, 2573, 2794, 3011, 3227, 3445, 3663, 3879, 4096, 4314, 4531, 4750, 4966, 5181, 5400, 5618, 5831, 6052, 6271, 6489, 6704, 6922, 7139, 7355, 7571, 7790, 8008, 8223, 8444, 8657, 8876, 9095, 9309, 9528, 9747, 9963, 10181, 10397, 10613, 10832, 11049, 11265, 11485, 11702, 11919, 12136, 12353, 12572, 12786]
    hit0 = 1
    data1 = [0, 4285, 4716, 5150, 5585, 6022, 6456, 6889, 7325, 7760, 8194, 8629, 9064, 9496, 9934, 10368, 10803, 11236, 11669, 12103, 12541, 12973, 13406, 13841, 14278, 14713, 15147, 15580, 16018, 16452, 16884, 17320, 17756, 18191, 18622, 19057, 19494, 19928, 20360, 20795, 21232, 21667, 22101, 22533, 22968, 23406, 23839, 24274, 24709, 25140, 25575]
    hit1 = 1
    data2 = [0, 6423, 7076, 7727, 8379, 9030, 9683, 10335, 10987, 11637, 12293, 12942, 13594, 14248, 14896, 15552, 16200, 16851, 17508, 18159, 18812, 19463, 20112, 20765, 21416, 22068, 22722, 23370, 24024, 24675, 25326, 25981, 26633, 27282, 27934, 28586, 29239, 29890, 30542, 31197, 31845, 32500, 33150, 33804, 34456, 35107, 35756, 36409, 37061, 37713, 38367]
    hit2 = 1
    data3 = [0, 8565, 9438, 10303, 11174, 12043, 12912, 13780, 14650, 15519, 16388, 17258, 18127, 18998, 19865, 20733, 21603, 22472, 23342, 24210, 25082, 25947, 26818, 27686, 28559, 29424, 30297, 31164, 32032, 32902, 33771, 34641, 35508, 36379, 37248, 38120, 38986, 39854, 40724, 41592, 42463, 43331, 44203, 45069, 45942, 46807, 47677, 48546, 49415, 50285, 51154]
    hit3 = 1
    data4 = [0, 10709, 11793, 12882, 13968, 15053, 16140, 17227, 18313, 19399, 20486, 21572, 22658, 23746, 24831, 25917, 27004, 28090, 29175, 30262, 31350, 32437, 33523, 34610, 35695, 36783, 37868, 38954, 40042, 41126, 42212, 43301, 44386, 45473, 46558, 47647, 48733, 49819, 50907, 51993, 53079, 54165, 55250, 56338, 57424, 58508, 59596, 60682, 61769, 62856, 63942]
    hit4 = 1
    data5 = [0, 12850, 14152, 15457, 16761, 18064, 19367, 20672, 21978, 23278, 24584, 25888, 27191, 28493, 29797, 31101, 32406, 33709, 35012, 36315, 37622, 38925, 40228, 41533, 42835, 44137, 45441, 46747, 48050, 49352, 50656, 51960, 53267, 54569, 55873, 57176, 58480, 59783, 61083, 62390, 63695, 64998, 66301, 67605, 68909, 70213, 71517, 72821, 74124, 75428, 76731]
    hit5 = 1
    data6 = [0, 44995, 49559, 54124, 58687, 63253, 67818, 72382, 76949, 81516, 86075, 90642, 95206, 99774, 104338, 108902, 113466, 118032, 122595, 127160, 131724, 136291, 140854, 145418, 149984, 154550, 159117, 163676, 168242, 172807, 177374, 181939, 186503, 191066, 195633, 200197, 204760, 209326, 213892, 218455, 223021, 227586, 232151, 236716, 241281, 245843, 250408, 254974, 259538, 264104, 268671]
    hit6 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.04*1.24


class 技能26(被动技能):
    名称 = '式神之力'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 物理攻击力倍率进图(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.08 + 0.02 * self.等级, 5)

    def 魔法攻击力倍率进图(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.08 + 0.02 * self.等级, 5)


class 技能27(被动技能):
    名称 = '脉轮：式神'
    所在等级 = 75
    等级上限 = 11
    学习间隔 = 50
    等级精通 = 1

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.34 + 0.02 * self.等级, 5)


class 技能28(主动技能):
    名称 = "式神封灵阵"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [800, 6000]
    无色消耗 = 5

    data0 = [0, 5039, 5540, 6055, 6570, 7078, 7590, 8104, 8609, 9121, 9634, 10145, 10659, 11168, 11675, 12186, 12700, 13209, 13720, 14233, 14743, 15256, 15765, 16280, 16785, 17297, 17814, 18319, 18834, 19344, 19856, 20365, 20875, 21385, 21897, 22412, 22916, 23427, 23943, 24447, 24962, 25472, 25985, 26498, 27008, 27521, 28026, 28543, 29055, 29556, 30072]
    hit0 = 10
    data1 = [0, 50370, 55478, 60587, 65702, 70808, 75915, 81026, 86135, 91246, 96356, 101467, 106578, 111688, 116795, 121906, 127016, 132126, 137236, 142344, 147458, 152566, 157674, 162785, 167894, 173007, 178115, 183225, 188337, 193446, 198552, 203666, 208773, 213884, 218990, 224101, 229211, 234322, 239431, 244542, 249653, 254764, 259870, 264982, 270093, 275204, 280312, 285420, 290531, 295642, 300751]
    hit1 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.36
        self.CDR *= 0.9


class 技能29(主动技能):
    名称 = "真龙焚天"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2500, 8000]
    无色消耗 = 10

    data0 = [0, 223025, 274743, 326460, 378178, 429892, 481611, 533326, 585042, 636760, 688476, 740193, 791913, 843626, 895345, 947060, 998780, 1050493, 1102209, 1153924, 1205644, 1257360, 1309078, 1360792, 1412510, 1464226, 1515940, 1567660, 1619375, 1671093, 1722813, 1774529, 1826245, 1877961, 1929679, 1981393, 2033108, 2084824, 2136542, 2188261, 2239976, 2291694, 2343409, 2395127, 2446842, 2498561, 2550273, 2601993, 2653711, 2705429, 2757143]
    hit0 = 1
    data1 = [0, 3999, 4931, 5859, 6786, 7715, 8643, 9569, 10501, 11429, 12355, 13283, 14210, 15139, 16069, 16996, 17925, 18852, 19781, 20709, 21636, 22566, 23493, 24422, 25349, 26276, 27207, 28135, 29061, 29987, 30916, 31844, 32777, 33705, 34632, 35557, 36488, 37416, 38344, 39273, 40200, 41127, 42056, 42983, 43911, 44838, 45770, 46697, 47623, 48551, 49482]
    hit1 = 0
    data2 = [0, 56608, 69736, 82862, 95990, 109116, 122243, 135368, 148498, 161623, 174750, 187876, 201005, 214128, 227258, 240383, 253510, 266639, 279766, 292891, 306018, 319146, 332275, 345398, 358526, 371651, 384779, 397906, 411035, 424158, 437286, 450415, 463539, 476668, 489795, 502921, 516048, 529176, 542302, 555427, 568555, 581680, 594810, 607932, 621064, 634188, 647317, 660440, 673570, 686695, 699825]
    hit2 = 0

    形态 = ["烈焰", "圣光"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "烈焰":
            self.hit0 = 1
            self.hit1 = 0
            self.hit2 = 0
        if 形态 == "圣光":
            self.hit0 = 0
            self.hit1 = 32
            self.hit2 = 1


class 技能30(主动技能):
    名称 = "式神灭却·合"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [960, 7200]
    无色消耗 = 7

    # 力驱部分
    data0 = [0, 33544, 36946, 40352, 43754, 47157, 50560, 53963, 57365, 60768, 64172, 67577, 70979, 74382, 77786, 81188, 84591, 87993, 91397, 94800, 98205, 101608, 105010, 108413, 111816, 115219, 118621, 122024, 125427, 128832, 132235, 135638, 139041, 142443, 145846, 149249, 152652, 156058, 159460, 162862, 166265, 169669, 173072, 176474, 179876, 183280, 186684, 190088, 193490, 196894, 200297]
    hit0 = 1
    data1 = [0, 16772, 18474, 20175, 21877, 23577, 25279, 26983, 28683, 30385, 32086, 33788, 35489, 37191, 38892, 40594, 42296, 43996, 45698, 47399, 49101, 50802, 52504, 54205, 55907, 57610, 59312, 61013, 62714, 64415, 66117, 67819, 69519, 71221, 72924, 74625, 76327, 78028, 79730, 81431, 83133, 84833, 86537, 88239, 89939, 91641, 93342, 95044, 96745, 98447, 100148]
    hit1 = 1
    data2 = [0, 50317, 55421, 60526, 65631, 70736, 75839, 80944, 86049, 91155, 96259, 101363, 106467, 111574, 116677, 121782, 126887, 131990, 137095, 142201, 147305, 152410, 157514, 162618, 167723, 172829, 177933, 183037, 188142, 193245, 198352, 203457, 208560, 213664, 218770, 223874, 228980, 234085, 239188, 244293, 249398, 254501, 259609, 264712, 269816, 274920, 280026, 285131, 290235, 295339, 300444]
    hit2 = 1
    data3 = [0, 16772, 18474, 20175, 21877, 23577, 25279, 26983, 28683, 30385, 32086, 33788, 35489, 37191, 38892, 40594, 42296, 43996, 45698, 47399, 49101, 50802, 52504, 54205, 55907, 57610, 59312, 61013, 62714, 64415, 66117, 67819, 69519, 71221, 72924, 74625, 76327, 78028, 79730, 81431, 83133, 84833, 86537, 88239, 89939, 91641, 93342, 95044, 96745, 98447, 100148]
    hit3 = 4
    # 法驱部分
    data4 = [0, 7576, 8345, 9114, 9881, 10651, 11419, 12188, 12957, 13724, 14494, 15262, 16030, 16799, 17568, 18337, 19105, 19873, 20643, 21410, 22179, 22948, 23716, 24485, 25253, 26022, 26791, 27560, 28327, 29098, 29865, 30632, 31403, 32170, 32941, 33708, 34476, 35246, 36014, 36782, 37552, 38320, 39089, 39857, 40625, 41394, 42163, 42931, 43700, 44469, 45236]
    hit4 = 0
    data5 = [0, 48702, 53643, 58586, 63526, 68467, 73407, 78349, 83290, 88230, 93171, 98112, 103053, 107994, 112934, 117877, 122818, 127758, 132699, 137641, 142581, 147522, 152462, 157404, 162345, 167285, 172227, 177169, 182109, 187050, 191990, 196932, 201873, 206813, 211754, 216696, 221636, 226578, 231518, 236460, 241401, 246341, 251282, 256224, 261163, 266105, 271045, 275987, 280927, 285869, 290810]
    hit5 = 0

    形态 = ["烈焰", "圣光"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "烈焰":
            self.hit0 = 1
            self.hit1 = 1
            self.hit2 = 1
            self.hit3 = 4
            self.hit4 = 0
            self.hit5 = 0
        if 形态 == "圣光":
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 0
            self.hit3 = 0
            self.hit4 = 15
            self.hit5 = 1


class 技能31(被动技能):
    名称 = '式神之悟'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    非关联技能 = ['基本攻击', '空斩打']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能32(主动技能):
    名称 = "雷鸣怒海·火啸山崩"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4027, 12888]
    无色消耗 = 15

    data0 = [0, 28647, 35289, 41933, 48574, 55218, 61860, 68504, 75145, 81791, 88433, 95076, 101718, 108362, 115003, 121646, 128289, 134933, 141575, 148218, 154859, 161502, 168145, 174789, 181431, 188074, 194717, 201360, 208001, 214645, 221288, 227931, 234573, 241216, 247860, 254504, 261146, 267789, 274431, 281074, 287716, 294359, 301003, 307646, 314288, 320930, 327572, 334216, 340859, 347502, 354144]
    hit0 = 5
    data1 = [0, 28647, 35289, 41933, 48574, 55218, 61860, 68504, 75145, 81791, 88433, 95076, 101718, 108362, 115003, 121646, 128289, 134933, 141575, 148218, 154859, 161502, 168145, 174789, 181431, 188074, 194717, 201360, 208001, 214645, 221288, 227931, 234573, 241216, 247860, 254504, 261146, 267789, 274431, 281074, 287716, 294359, 301003, 307646, 314288, 320930, 327572, 334216, 340859, 347502, 354144]
    hit1 = 1
    data2 = [0, 229177, 282320, 335462, 388605, 441748, 494889, 548031, 601174, 654317, 707459, 760601, 813744, 866886, 920028, 973170, 1026314, 1079456, 1132598, 1185741, 1238884, 1292026, 1345169, 1398311, 1451454, 1504597, 1557739, 1610881, 1664025, 1717167, 1770309, 1823451, 1876594, 1929735, 1982877, 2036020, 2089163, 2142305, 2195447, 2248590, 2301733, 2354875, 2408018, 2461160, 2514303, 2567446, 2620588, 2673730, 2726875, 2780016, 2833158]
    hit2 = 1
    data3 = [0, 17189, 21173, 25159, 29145, 33131, 37117, 41103, 45089, 49075, 53061, 57044, 61029, 65016, 69001, 72987, 76973, 80959, 84945, 88931, 92917, 96902, 100886, 104874, 108858, 112846, 116832, 120817, 124803, 128786, 132772, 136758, 140744, 144730, 148715, 152702, 156686, 160674, 164658, 168646, 172629, 176616, 180601, 184587, 188574, 192559, 196544, 200530, 204513, 208501, 212485]
    hit3 = 10


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'exorcist'
        self.名称 = '神启·驱魔师'
        self.角色 = '圣职者(男)'

        self.职业 = '驱魔师'

        self.武器选项 = ['念珠', '战斧']
        self.输出类型选项 = ['物理百分比', '魔法百分比']
        self.防具精通属性 = ['力量', '智力']
        self.类型 = '物理百分比'
        self.武器类型 = "战斧"
        self.防具类型 = '板甲'  # 布甲#板甲#重甲
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.76

        super().__init__(equVersion)

    def 装备基础(self):
        if self.类型 == '物理百分比':
            self.防具类型 = '板甲'
        if self.类型 == '魔法百分比':
            self.防具类型 = '布甲'
        super().装备基础()

    def 职业特殊计算(self):
        基本攻击 = self.get_skill_by_name('基本攻击')
        空斩打 = self.get_skill_by_name('空斩打')

        空斩打.倍率 *= 1+0.1*基本攻击.TP等级
